package com.zhuss.core.db.dao.ext;

import java.util.List;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import com.zhuss.bean.bo.core.user.SearchUserBo;
import com.zhuss.bean.vo.core.user.DetailUserVo;
import com.zhuss.bean.vo.core.user.ListUserVo;
import com.zhuss.core.db.dao.gen.UserMapper;
import com.zhuss.core.db.entity.User;

@Mapper
public interface UserDao extends UserMapper {
	
	void create(User record);
	
	void delete(User record);
	
	void nullOpenId(User record);
	
	List<User> listAll();
	
	List<User> listUnbind();
	
	List<User> listByCompany(@Param("companyIdList") List<Long> companyIdList);
	
	List<User> listByUsername(@Param("username") String username);

	List<ListUserVo> list(SearchUserBo bo);

	Integer countList(SearchUserBo bo);

	DetailUserVo detail(@Param("userId") Long userId);

	List<User> listByLogin(@Param("username") String username, @Param("pwd") String pwd, @Param("status") Integer status);
	
	List<User> listByOpenId(@Param("openId") String openId, @Param("status") Integer status);
	
	List<Long> listByName(@Param("name") String name, @Param("status") Integer status);
	
    
}